from flask import current_app, flash,redirect,url_for

from app.modes.base import db
from app.modes.gift import Gift
from . import web
from flask_login import login_required, current_user


@web.route('/my/gifts')
@login_required  # 被装饰的视图函数需要登录才能访问,当然携带浏览器上携带cookie也是可以访问的
def my_gifts():
    return 'My Gifts'

#赠送图书功能
@web.route('/gifts/book/<isbn>')
@login_required
def save_to_gifts(isbn):
    if current_user.can_save_to_list(isbn):
        with db.auto_commit():
            gift = Gift()  # 实例数据库模型
            gift.isbn = isbn  # 添加isbn
            gift.uid = current_user.id  # 这个current_user 在这里就是一个User模型的对象，因为get_user这个方法返回了一个对象
            current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK']  #上传一本书赠送鱼豆
            db.session.add(gift)
            # db.session.commit() #只有有提交操作的，最好都搞一个回滚

    else:
        flash('这本书已添加至你的赠送清单或已存在你的心愿清单，请不要重复添加')
    return redirect(url_for('web.book_detail',isbn=isbn))

@web.route('/gifts/<gid>/redraw')
def redraw_from_gifts(gid):
    pass
